From bde55ccdcebef42efdb1465883b7333aacfa69da Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 6 Aug 2016 09:37:47 -0400 Subject: [PATCH] Some debug help Make the bounds of drawing surfaces created by render nodes visible. Trigger with GSK_DEBUG=surface. --- gsk/gskdebug.c | 3 ++- gsk/gskdebugprivate.h | 3 ++- gsk/gskrendernode.c | 11 +++++++++++ 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gsk/gskdebug.c b/gsk/gskdebug.c index 1e0dc1c0b3..216e118441 100644 --- a/gsk/gskdebug.c +++ b/gsk/gskdebug.c @@ -7,7 +7,8 @@ static const GDebugKey gsk_debug_keys[] = { { "cairo", GSK_DEBUG_CAIRO }, { "opengl", GSK_DEBUG_OPENGL }, { "shaders", GSK_DEBUG_SHADERS }, - { "transforms", GSK_DEBUG_TRANSFORMS } + { "transforms", GSK_DEBUG_TRANSFORMS }, + { "surface", GSK_DEBUG_SURFACE } }; #endif diff --git a/gsk/gskdebugprivate.h b/gsk/gskdebugprivate.h index 5ab23b2535..ee1857c97b 100644 --- a/gsk/gskdebugprivate.h +++ b/gsk/gskdebugprivate.h @@ -11,7 +11,8 @@ typedef enum { GSK_DEBUG_CAIRO = 1 << 2, GSK_DEBUG_OPENGL = 1 << 3, GSK_DEBUG_SHADERS = 1 << 4, - GSK_DEBUG_TRANSFORMS = 1 << 5 + GSK_DEBUG_TRANSFORMS = 1 << 5, + GSK_DEBUG_SURFACE = 1 << 6 } GskDebugFlags; typedef enum { diff --git a/gsk/gskrendernode.c b/gsk/gskrendernode.c index ecf38a27a0..a58b07102a 100644 --- a/gsk/gskrendernode.c +++ b/gsk/gskrendernode.c @@ -1370,6 +1370,17 @@ gsk_render_node_get_draw_context (GskRenderNode *node) node->bounds.size.width, node->bounds.size.height); cairo_clip (res); + if (GSK_DEBUG_CHECK (SURFACE)) + { + cairo_save (res); + cairo_rectangle (res, + node->bounds.origin.x + 1, node->bounds.origin.y + 1, + node->bounds.size.width - 2, node->bounds.size.height - 2); + cairo_set_source_rgba (res, 1, 0, 0, 0.5); + cairo_stroke (res); + cairo_restore (res); + } + return res; } -- 2.30.2